<script setup>
import { RouterLink, RouterView } from 'vue-router'
import { ref, onMounted, provide } from 'vue'
import axios from 'axios'

const siteName = ref('')
const slogan = ref('')
const img = ref('')

onMounted(async () => {
  try {
    const response = await axios.get('/api.php?c=Cfg&a=get')
    const configData = response.data.data || []
    const config = configData.reduce((acc, item) => {
      acc[item.name] = item.value || ''
      return acc
    }, {})
    provide('config', config)
    siteName.value = config.name
    slogan.value = config.slogan
    img.value = config.img
    document.title = config.SiteName
  } catch (error) {
    console.error('获取配置失败:', error)
  }
})
</script>

<template>
  <header class="flex items-center">
    <div class="branding flex items-center space-x-4">
      <img 
        v-if="img"
        :src="img" 
        class="w-12 h-12 rounded-full object-cover border-2 border-gray-200"
        alt="博主头像"
      >
      <h1 class="text-xl font-bold">{{ siteName }}</h1>
      <p class="text-gray-600">{{ slogan }}</p>
    </div>
    <RouterLink 
      to="{ name: 'login' }"
      class="ml-4 px-5 py-2.5 bg-blue-600 text-white rounded-lg shadow-md hover:bg-blue-700 hover:shadow-lg transition-all duration-300 font-medium"
    >
      管理员登录
    </RouterLink>
  </header>

  <RouterView />
</template>

<style scoped>
header {
  line-height: 1.5;
  max-height: 100vh;
}

.logo {
  display: block;
  margin: 0 auto 2rem;
}

nav {
  width: 100%;
  font-size: 12px;
  text-align: center;
  margin-top: 2rem;
}

nav a.router-link-exact-active {
  color: var(--color-text);
}

nav a.router-link-exact-active:hover {
  background-color: transparent;
}

nav a {
  display: inline-block;
  padding: 0 1rem;
  border-left: 1px solid var(--color-border);
}

nav a:first-of-type {
  border: 0;
}

@media (min-width: 1024px) {
  header {
    display: flex;
    place-items: center;
    padding-right: calc(var(--section-gap) / 2);
  }

  .logo {
    margin: 0 2rem 0 0;
  }

  header .wrapper {
    display: flex;
    place-items: flex-start;
    flex-wrap: wrap;
  }

  nav {
    text-align: left;
    margin-left: -1rem;
    font-size: 1rem;

    padding: 1rem 0;
    margin-top: 1rem;
  }
}
</style>
